package app

import (
	"gitee.com/zhaokangming/tiny-ticktok/config"
	"gitee.com/zhaokangming/tiny-ticktok/pkg/util/convert"

	"github.com/gin-gonic/gin"
)

// Pager 分页结构体
type Pager struct {
	Page      uint32 `json:"page"`
	PageSize  uint32 `json:"page_size"`
	TotalRows uint32 `json:"total_rows"`
}

// GetPage 获取页数
func GetPage(c *gin.Context) uint32 {
	page := convert.StrTo(c.Query("page")).MustUInt32()
	if page <= 0 {
		return 1
	}
	return page
}

// GetPageSize 获取每页大小
func GetPageSize(c *gin.Context) uint32 {
	pageSize := convert.StrTo(c.Query("page_size")).MustUInt32()
	if pageSize <= 0 {
		return config.TikTok.DefaultPageSize
	}

	if pageSize > config.TikTok.MaxPageSize {
		return config.TikTok.MaxPageSize
	}
	return pageSize
}

// GetPageOffset 获取offset
func GetPageOffset(page, pageSize int) int {
	result := 0
	if page > 0 {
		result = (page - 1) * pageSize
	}
	return result
}
